<template>
  <div>
    <!-- minio私有存储 -->
    <div class="text-red-500">minio存储</div>
    <div class="text-red-500">注意:本地需要有minio环境</div>
    <div class="mb-2">
      <el-upload v-model:file-list="fileList" class="upload-demo" :action="action" :name="'file'" :headers="headers"
        :on-success="handleSuccess" :limit="1">
        <el-button type="primary">单选上传</el-button>
        <template #tip>
          <div class="el-upload__tip ">
            <!-- jpg/png files with a size less than 500KB. -->
            <!-- <span style="color:red">
         注意：单选上传
         </span> -->
            <!-- patter 样式 text文本信息 -->
            <waText :text="'注意：单选上传'" :patter="{ color: 'red' }" />
          </div>
        </template>
      </el-upload>
      <el-button type="primary" @click="download">下载图片</el-button>
    </div>
    <hr />
    <h5 style="margin:5px 0;">生成水印</h5>
    <div class="mt-2">
      <!-- wps收费? 手动创建pdf-->
      <!-- <el-button type="primary" @click="createPdf">手动创建pdf</el-button>
    <div class="p">
      <p>我是test200</p>
    </div> -->
      <el-button type="primary" @click="createPdf">生成水印</el-button>
      <h5 style="margin:5px 0;">合并pdf</h5>
      <div class="mb-2">
        <el-button type="primary" @click="mergePdf">合并Pdf</el-button>
      </div>
      <div class="flex  w-100 pt-2 pb-2 items-center" v-for="(item, index) in pdfList" :key="index"
        @click="open(item.url)">
        <div>
          <img src="https://t9.baidu.com/it/u=3917977667,2615684315&fm=193" style="width:20px;height:20px;"></img>
        </div>
        <div>{{ item.name }}</div>
      </div>
    </div>
    <hr />
    <h5 style="margin:5px 0;">测试日志搭建</h5>
    <div class="mb-2">
      <el-button type="primary" @click="checkDaliy">pdf生成水印</el-button>
    </div>
    <hr />
    <h5 style="margin:5px 0;">测试消息队列</h5>
    <el-button type="primary" @click="testRabbit">测试rabbitmq消息队列</el-button>
  </div>
</template>
<script setup lang="ts">
import { ref } from 'vue'
import { ElMessage, ElMessageBox } from 'element-plus'
import { getToken, formatToken } from "@/utils/auth";
import { http } from "@/utils/http";
/* 引入打印 */
import { VuePrintNext } from 'vue-print-next';
/*  */
import { fontPdfMethods } from '@/utils/fontPdf.ts'
const fileList = ref<any[]>([
])

const headers = {
  authorization: 'Bearer ' + getToken().accessToken
}

const action: any = ref('/home/minioUpload')
const handleSuccess: any = (uploadFile) => {
  if (uploadFile.code == 200) {
    // 上传成功打开文件(图片)
    ElMessage.success('上传成功,即将打开...')
    //1s后跳转
    // setTimeout(()=>{
    // window.open(uploadFile.data.url)
    // },1000)
  }
}

/* 下载 */
const download = () => {
  http.request('get', "/home/getDownURL").then((res: any) => {
    if (res.code == 200) {
      /* 后续会调用公共方法 */
      http.request('get', res.data.url, { responseType: 'blob' }).then(res => {
        if (res) {
          let url = window.URL.createObjectURL(res)
          let a = document.createElement('a')
          a.href = url
          a.download = 'xxx.png'
          a.style.display = 'none'
          document.body.append(a)
          a.click()
        }

      })
    }
  })
}

/* 手动创建pdf */
// const createPdf=()=>{
//   new VuePrintNext({
//   el: '.p',
//   paperSize:'A4',
//   // orientation: 'landscape', //设置纸张方向为横向
//   defaultScale: 0.8, //缩放
//   /** 其他参数 */});
// }

/* 定义文件列表 */
const pdfList = ref<any>([
  {
    url: 'http://127.0.0.1:9066/test100.pdf',
    name: 'test100'
  },
  {
    url: 'http://127.0.0.1:9066/test200.pdf',
    name: 'test200'
  }
])


/* 生成pdf 以data命名参数 */
const createPdf = () => {
  const data = {
    pdfList: pdfList.value
  }
  http.request<any>("post", "/home/postcreatePdf", { data }).then(res => {
    if (res.code == 200) {
      pdfList.value = res.data.list
    }
  })
}

/* 合并pdf */
const mergePdf = () => {
  const data = {
    pdfList: pdfList.value
  }
  http.request<any>("post", "/home/mergeToPdf", {data}).then(res => {
    if (res.code == 200) {
      window.open(res.data.url)
    }
  })
}


/* 打开 */
const open = (e) => {
  window.open(e)
}


/* 测试检查日志 */
const checkDaliy = () => {
  const data = {
    // test:"1111"
  }
  http.request<any>("post", "/home/checkDaily", { data }).then(res => {
    if (res.code == 200) {
      pdfList.value = res.data.list
    }
  })
}

/* 测试消息队列 */
const testRabbit = () => {
  const data = {
    test: '1',
    //假设数据如此
    id: '123456789',
    name: '王xxx',
    data: {
      title: '这是一个测试文件标题',
      content: '这是一个测试文件内容:佩通坦在录音中使用了极为柔和的语气，称洪森为“叔叔”。不仅如此，佩通坦还暗批泰国军方“失控”，还劝洪森“别被挑衅影响”。这番话原本是出于安抚、修复关系之意，然而录音一经泄露，泰国民众视之为“对柬屈辱”“对军方背叛”，街头抗议随即爆发，执政联盟内部也迅速瓦解。尤其是自豪泰党选择退出政府，让佩通坦的总理位置一度风雨飘摇。洪森则迅速证实录音属实，并称已分发给约80名高层官员。他坚称自己并未主动泄露录音，暗指是柬埔寨高层有人对佩通坦的不当言论不满，才决定公之于众。但出乎意料的是，佩通坦并未坐以待毙，而是迅速反击。她公开承认录音属实，但强调那是一种“谈判技巧”，目的是避免冲突扩大。她还亲自前往军营，当众鞠躬致歉，取得军方理解，阻止了政变或罢免可能。稳住军方后，佩通坦开始对柬埔寨反将一军。6月23日，泰国封锁全部16个泰柬边境口岸，禁止人员车辆通行，仅允许学生、病患等特殊人群过境。同时，泰国加强对柬埔寨电诈园的打击，威胁切断对其石油、电力供应。如此一来，陷入被动的反成了洪森，他本想借录音打击佩通坦政府，却促使泰国军政短暂团结，柬方反成经济制裁的承受者。'
    }
  }
  http.request<any>("post", "/home/postBaseDataAndFile", { data }).then(res => {
    if (res.code == 200) {
      pdfList.value = res.data.list
    }
  })
}


</script>
<style scoped></style>